import { userlist, usercount } from '../../api/api'
const state = {
  userListData: [],
  // 页面显示条数
  pageSize: 3,
  // 页码
  pageNum: 1,
  // 总条数
  count: 0
}

// 类似于计算属性 对state力度数据进行处理返回
const getters = {
  // 函数形式
  getUser (state) {
    return state.userListData
  },
  getCount (state) {
    return state.count
  },
  getSize (state) {
    return state.pageSize
  }

}
const mutations = {
  REQ_USERLIST (state, payload) {
    state.userListData = payload
  },
  REQ_USERCOUNT (state, payload) {
    state.count = payload
  },
  REQ_PAGENUM (state, payload) {
    state.pageNum = payload
  }
}
const actions = {
// 如果想修改state的数据 通过调用mutations里的commit方法
  getUserlist (context) {
    userlist({ size: context.state.pageSize, page: context.state.pageNum }).then(res => {
      //  删除最后一条数据 需让页码减1 否则他会一直在获取当前页码
      // 后端 返回空 无法进行判断 需进行转化
      const list = res.list ? res.list : []
      // 页码不等于1 list长度==0
      if (context.state.pageNum !== 1 && list.length === 0) {
        // pagenum-1
        context.dispatch('changePageAction', context.state.pageNum - 1)
      }
      context.commit('REQ_USERLIST', res.list)
    })
  },
  // 获取总条数
  getUsercount (context) {
    usercount().then(res => {
      if (res.code === 200) {
        context.commit('REQ_USERCOUNT', res.list[0].total)
      }
    })
  },
  // 获取当前页重新调用列表
  changePageAction (context, n) {
    // 赋值新的页码
    context.commit('REQ_PAGENUM', n)
    // 重新调用
    context.dispatch('getUserlist')
  }

}

export default {
  namespaced: true,
  state,
  getters,
  mutations,
  actions
}
